A technique of processing pipelines to increase data throughput has long been known in the art. A long task is divided into components and each component is distributed to one processor. A new task can begin even though the former tasks have not been completed. In the pipelined operation, different components of the different tasks are executed at the same time by different processors. Presently, pipelines are in widespread use in nearly all types of data processing electronic equipment, such as sophisticated supercomputers, in which fast and efficient processing of data is essential to the overall operation of the system.
Pipelines have been developed in a wide variety of electronic manufacturing and circuit design configurations. One example of the use of a pipeline is an averaging filter used in digital signal processing. An averaging filter generally consists of at least one subtractor module in series with at least one adder module. Each subtractor and adder module typically has numerous adder logic units and data registers. In order to increase the processing efficiency and speed in each of the subtractor and the adder modules, their respective internal adder logic units and registers are typically placed in pipelined arrangements. While an effective approach for increasing processing efficiency and speed, the typical pipelined configuration is not without shortcomings in other aspects. These shortcoming are even more apparent in high speed averaging filters which operate at high clock rates.